<HTML>
<HEAD>
<TITLE>JavaScript Source Code 3000:  Forms:  Guestbook Validation</TITLE>
<META HTTP-EQUIV="JavaScript Source Code 3000" CONTENT = "no-cache">
<META NAME="date" CONTENT="2000-09-09">
<META NAME="channel" CONTENT="Web Developer">
<META NAME="author" CONTENT="JavaScript Source Code 3000">
<META NAME="section" CONTENT="Forms">
<META NAME="description" CONTENT="Use JavaScript to ensure that all elements of a guestbook are properly filled out before mailing.">

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function toName()
     {
var toNameval=document.forms[0].elements[1].value;
toNameval = "mailto:" + toNameval + "?subject=Guest Book example";
this.document.mail.action = toNameval;
}
function Reset() {
document.forms[0].elements[0].value = "";
document.forms[0].elements[1].value = "";
document.forms[0].elements[2].value = navigator.appName + " " + navigator.appVersion;  
document.forms[0].elements[3].value = "";
document.forms[0].elements[4].value = "";
document.forms[0].elements[5].value = "";
document.forms[0].elements[0].focus();
}
function submitForms() {
if ( (isName() ) && (isEmail()) && (isBrowser()) && (isCountry()) && (isComment()) && (isFavorite()) )
if (confirm("\nYou're about to e-mail the form.\n\nClick on YES to submit.\n\nClick on NO to abort."))
{
var emailAddress=document.forms[0].elements[1].value
alert("\nYour submission will now be made to:\n\n\n\n"+emailAddress+"\n\n\n\nThank you!");
return true;
}
else
{
alert("\nYou have chosen to abort the submission.");
return false;      
}
else
return false;
}
function isName() {
var str = document.forms[0].elements[0].value;
if (str == "") {
alert("\nThe NAME field is blank.\n\nPlease enter your name.")
document.forms[0].elements[0].focus();
return false;
}
for (var i = 0; i < str.length; i++) 
{
var ch = str.substring(i, i + 1);
if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && ch != ' ') 
{
alert("\nThe NAME field only accepts letters & spaces.\n\nPlease re-enter your name.");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false;
   }
}
return true;
}
function isEmail()
{
emailAddress=document.forms[0].elements[1].value;
if (document.forms[0].elements[1].value == "") {
alert("\nThe E-MAIL field is blank.\n\nPlease enter your e-mail address.")
document.forms[0].elements[1].focus();
return false; 
}
if (document.forms[0].elements[1].value.indexOf ('@',0) == -1 || 
document.forms[0].elements[1].value.indexOf ('.',0) == -1)
{
alert("\nThe E-MAIL field requires a \"@\" and a \".\"be used.\n\nPlease re-enter your e-mail address.")
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}
else
{
toName();
return true;
}
}
function isBrowser()
{
if (document.forms[0].elements[2].value != navigator.appName + " " + navigator.appVersion)
{
if (confirm("\nYou've changed your browser type.\n\nClick on OK to keep changes.\n\nClick on Cancel to restore detected browser.")) 
return true
else
{
document.forms[0].elements[2].value = navigator.appName + " " + navigator.appVersion;
return true;      
   }
}
else
return true;
}
function isCountry() {
var str = document.forms[0].elements[3].value;
if (str == "") {
alert("\nThe COUNTRY field is blank.\n\nPlease enter your country.")
document.forms[0].elements[3].focus();
return false;
}
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i + 1);
if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && ch != ' ') 
{
alert("\nThe COUNTRY field only accepts letters & spaces.\n\nPlease re-enter your country.");
document.forms[0].elements[3].select();
document.forms[0].elements[3].focus();
return false;
   }
}
return true;
}
function isComment() {
if (document.forms[0].elements[4].value == "") {
if (confirm("\nYou're about to submit without leaving a comment.\n\nClick on CANCEL to include a comment.\n\nClick on OK to continue without a comment.")) 
return true
else
{
document.forms[0].elements[4].focus();
return false;      
}
}
else
return true   
}
function isFavorite() {
if (document.forms[0].elements[5].value == "") {
if (confirm("\nYou're about to submit without listing your favorite sites.\n\nClick on CANCEL to include favorites.\n\nClick on OK to continue without listing favorites.")) 
return true
else
{
document.forms[0].elements[5].focus();
return false;      
   }
}
else
return true   
}
// End -->
</SCRIPT>
</HEAD>

<BODY BGCOLOR=#ffffff vlink=#0000ff onLoad="Reset()">

<BR>
<center>
<table width="600" cellpadding="0" cellspacing="10">
<tr>
<td width="468" align="center">

	
</td>
<td width="120" align="center">

	
</td>
</tr>
</table>
<BR>
<BR>
<BASEFONT SIZE=3>
  <FONT SIZE=6>
<B><FONT SIZE="+2" FACE="Helvetica,Arial" ALIGN=RIGHT COLOR="#0000FF">
<b><A HREF="../index.htm" /" TARGET="_top">
Home</A> </b><img src="../img/arrow.gif" /img/arrow.gif" height=13 width=7 border=0 alt="}"> <b><A HREF="index.htm" /forms/" ><font color="#FF0000">Forms</font></A> </b>
<img src="../img/arrow.gif" /img/arrow.gif" height=13 width=7 border=0 alt="}"> <FONT COLOR="#006666">Guestbook Validation</FONT></b></FONT><BR>
</B><BR>
  </FONT>
<table BORDER=0 WIDTH=486 CELLPADDING=3 CELLSPACING=0>
<tr><td><font FACE="helvetica,arial,geneva">
<br>
<br>
<!-- Description --><!--content_start-->

Use JavaScript to ensure that all elements of a guestbook are properly filled out before mailing.
<br>
<hr>
</td></tr>
</table>
<!-- Demonstration -->
<BODY>
<CENTER>
<FORM ENCTYPE="text/plain" NAME="mail" METHOD='GET' onSubmit="return submitForms()">
<TABLE BORDER=0 WIDTH=400>
<TR>
<TD align="center"> <FONT COLOR=800000><STRONG>Enter your name:</STRONG></FONT></TD>
<TD align="center"> <FONT COLOR=800000><STRONG>Enter your e-mail address:</STRONG></FONT></TD>
</TR>
<TR>
<TD align="center"> <INPUT TYPE="text" NAME="name"   SIZE=30 MAXLENGTH=40 ></TD>
</TD>
<TD align="center"> <INPUT TYPE="text" NAME="email"   SIZE=30 MAXLENGTH=40 ></TD>
</TR>
<TR>
<TD align="center"> <FONT COLOR=800000><STRONG>Your browser </STRONG></FONT></TD>
<TD align="center"> <FONT COLOR=800000><STRONG>Enter your country:</STRONG></FONT></TD>
</TR>
<TR>
<TD align="center"> <INPUT TYPE="text" NAME="browser" SIZE=30 MAXLENGTH=60></TD>
<TD align="center"> <INPUT TYPE="text" NAME="country" SIZE=30 MAXLENGTH=60>
</TD>
</TR>
</TABLE>
<CENTER> 
<FONT COLOR=800000><STRONG>Leave a comment or suggestion:</strong> </font><BR>
<TEXTAREA NAME="comments" ROWS=5 COLS=50 wrap=yes>Comments?  Suggestions?</TEXTAREA><P><P>
<FONT COLOR=800000><STRONG>List your favorite sites:</STRONG></FONT><BR>
<TD align="center"><TEXTAREA NAME="favorites" ROWS=5 COLS=50 wrap=yes>
Any sites I should take a look at?</TEXTAREA>
<P><P>
<INPUT TYPE="submit" VALUE="Submit"><center><INPUT TYPE="reset" VALUE="Reset" onClick="Reset()">
</FORM>
</CENTER>
<P>
<P>
<a name="source">
<table BORDER=0 WIDTH=486 CELLPADDING=3 CELLSPACING=0>
<tr><td BGCOLOR=yellow><font FACE="helvetica,arial,geneva"><b>JavaScript Source Code 3000:  Form:  Guestbook Validation</b>
<p>Simply click inside the window below, use your cursor to highlight the script, and copy (type Control-c or Apple-c) the script into a new file in your text editor (such as Note Pad or Simple Text) and save (Control-s or Apple-s).  The script is yours!!!<br><br></font></td></tr>
<tr><td BGCOLOR=yellow ALIGN=CENTER>
<form NAME="copy">

<DIV align="center">
<input type=button value="Highlight All" onClick="javascript:this.form.txt.focus();this.form.txt.select();">&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="text" NAME="total" VALUE="Script Size:  5.95 KB  " size="24">
</DIV>

<textarea NAME="txt" ROWS=20 COLS=75 WRAP=VIRTUAL>

&lt;!-- THREE STEPS TO INSTALL GUESTBOOK VALIDATION:

   1.  Paste the specified coding into the HEAD of your HTML document
   2.  Add the onLoad event handler into the BODY tag
   3.  Put the last code into the BODY of your HTML document  --&gt;

&lt;!-- STEP ONE: Copy this code into the HEAD of your HTML document  --&gt;

&lt;HEAD&gt;
	  
&lt;SCRIPT LANGUAGE="JavaScript"&gt;

&lt;! &gt;
&lt;! &gt;

&lt;!-- Begin
var emailAddress="youremailaddress";
function toName()
     {
var toNameval=document.forms[0].elements[1].value;
toNameval = "mailto:youre-mailaddress.com?subject=Guest Book example";
this.document.mail.action = toNameval;
}
function Reset() {
document.forms[0].elements[0].value = "";
document.forms[0].elements[1].value = "";
document.forms[0].elements[2].value = navigator.appName + " " + navigator.appVersion;  
document.forms[0].elements[3].value = "";
document.forms[0].elements[4].value = "";
document.forms[0].elements[5].value = "";
document.forms[0].elements[0].focus();
}
function submitForms() {
if ( (isName() ) && (isEmail()) && (isBrowser()) && (isCountry()) && (isComment()) && (isFavorite()) )
if (confirm("\nYou're about to e-mail the form.\n\nClick on YES to submit.\n\nClick on NO to abort."))
{ 
alert("\nYour submission will now be made to :\n\n"+emailAddress+"\n\n\nThank you!");
return true;
}
else
{
alert("\nYou have chosen to abort the submission.");
return false;      
}
else
return false;
}
function isName() {
var str = document.forms[0].elements[0].value;
if (str == "") {
alert("\nThe NAME field is blank.\n\nPlease enter your name.")
document.forms[0].elements[0].focus();
return false;
}
for (var i = 0; i &lt; str.length; i++) 
{
var ch = str.substring(i, i + 1);
if (((ch &lt; "a" || "z" &lt; ch) && (ch &lt; "A" || "Z" &lt; ch)) && ch != ' ') 
{
alert("\nThe NAME field only accepts letters & spaces.\n\nPlease re-enter your name.");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false;
   }
}
return true;
}
function isEmail()
{
emailAddress=document.forms[0].elements[1].value;
if (document.forms[0].elements[1].value == "") {
alert("\nThe E-MAIL field is blank.\n\nPlease enter your e-mail address.")
document.forms[0].elements[1].focus();
return false; 
}
if (document.forms[0].elements[1].value.indexOf ('@',0) == -1 || 
document.forms[0].elements[1].value.indexOf ('.',0) == -1)
{
alert("\nThe E-MAIL field requires a \"@\" and a \".\"be used.\n\nPlease re-enter your e-mail address.")
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}
else
{
toName();
return true;
}
}
function isBrowser()
{
if (document.forms[0].elements[2].value != navigator.appName + " " + navigator.appVersion)
{
if (confirm("\nYou've changed your browser type.\n\nClick on OK to keep changes.\n\nClick on Cancel to restore detected browser.")) 
return true
else
{
document.forms[0].elements[2].value = navigator.appName + " " + navigator.appVersion;
return true;      
   }
}
else
return true;
}
function isCountry() {
var str = document.forms[0].elements[3].value;
if (str == "") {
alert("\nThe COUNTRY field is blank.\n\nPlease enter your country.")
document.forms[0].elements[3].focus();
return false;
}
for (var i = 0; i &lt; str.length; i++) {
var ch = str.substring(i, i + 1);
if (((ch &lt; "a" || "z" &lt; ch) && (ch &lt; "A" || "Z" &lt; ch)) && ch != ' ') 
{
alert("\nThe COUNTRY field only accepts letters & spaces.\n\nPlease re-enter your country.");
document.forms[0].elements[3].select();
document.forms[0].elements[3].focus();
return false;
   }
}
return true;
}
function isComment() {
if (document.forms[0].elements[4].value == "") {
if (confirm("\nYou're about to submit without leaving a comment.\n\nClick on CANCEL to include a comment.\n\nClick on OK to continue without a comment.")) 
return true
else
{
document.forms[0].elements[4].focus();
return false;      
}
}
else
return true   
}
function isFavorite() {
if (document.forms[0].elements[5].value == "") {
if (confirm("\nYou're about to submit without listing your favorite sites.\n\nClick on CANCEL to include favorites.\n\nClick on OK to continue without listing favorites.")) 
return true
else
{
document.forms[0].elements[5].focus();
return false;      
   }
}
else
return true   
}
// End --&gt;
&lt;/SCRIPT&gt;

&lt;!-- STEP TWO: Add the onLoad event handler into the BODY tag  --&gt;

&lt;BODY onLoad="Reset()"&gt;

&lt;!-- STEP THREE: Copy this code into the BODY of your HTML document  --&gt;

&lt;CENTER&gt;
&lt;FORM ENCTYPE="text/plain" NAME="mail" METHOD='GET' ACTION='mailto:youremailaddress' onSubmit="return submitForms()"&gt;
&lt;TABLE BORDER=0 WIDTH=400&gt;
&lt;TR&gt;
&lt;TD align="center"&gt; &lt;FONT COLOR=800000&gt;&lt;STRONG&gt;Enter your name:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD align="center"&gt; &lt;FONT COLOR=800000&gt;&lt;STRONG&gt;Enter your e-mail address:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align="center"&gt; &lt;INPUT TYPE="text" NAME="name"   SIZE=30 MAXLENGTH=40 &gt;&lt;/TD&gt;
&lt;/TD&gt;
&lt;TD align="center"&gt; &lt;INPUT TYPE="text" NAME="email"   SIZE=30 MAXLENGTH=40 &gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align="center"&gt; &lt;FONT COLOR=800000&gt;&lt;STRONG&gt;Your browser &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD align="center"&gt; &lt;FONT COLOR=800000&gt;&lt;STRONG&gt;Enter your country:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align="center"&gt; &lt;INPUT TYPE="text" NAME="browser" SIZE=30 MAXLENGTH=60&gt;&lt;/TD&gt;
&lt;TD align="center"&gt; &lt;INPUT TYPE="text" NAME="country" SIZE=30 MAXLENGTH=60&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TABLE&gt;
&lt;CENTER&gt; 
&lt;FONT COLOR=800000&gt;&lt;STRONG&gt;Leave a comment or suggestion:&lt;/strong&gt; &lt;/font&gt;&lt;BR&gt;
&lt;TEXTAREA NAME="comments" ROWS=5 COLS=50 wrap=yes&gt;Comments?  Suggestions?&lt;/TEXTAREA&gt;&lt;P&gt;&lt;P&gt;
&lt;FONT COLOR=800000&gt;&lt;STRONG&gt;List your favorite sites:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;TD align="center"&gt;&lt;TEXTAREA NAME="favorites" ROWS=5 COLS=50 wrap=yes&gt;
Any sites I should take a look at?&lt;/TEXTAREA&gt;
&lt;P&gt;&lt;P&gt;
&lt;INPUT TYPE="submit" VALUE="Submit"&gt;&lt;center&gt;&lt;INPUT TYPE="reset" VALUE="Reset" onClick="Reset()"&gt;
&lt;/FORM&gt;
&lt;/CENTER&gt;

 

&lt;!-- Script Size:  5.95 KB  --&gt;
</textarea><br><font FACE="helvetica,arial,geneva"></font></td></tr>

<SCRIPT>
document.forms[0].elements[2].value = navigator.appName + " " + navigator.appVersion;
</SCRIPT>

</table>
</form>
</FONT>
</CENTER>


</center>
</body></html>